1. Field of the Invention
This invention relates to a wireless communication system, and more specifically a wireless communication system in which issues of duplication of terminal identifiers like IP addresses is resolved through distributed operation among terminals, without a server or an administrator which centrally allocates terminal identifiers to terminals on the network.
2. Description of Related Art
The conventional method for allocating unique IP addresses for each terminal on an IP network where no network manager or server exists, for example Auto IP proposed in an Internet Draft (draft-ietf-dhc-ipv4-autoconfig-04.txt), involves a method by which a terminal randomly chooses an temporary IP address from a certain range of IP addresses when the terminal boots up, resolves duplication of IP addresses in the network, then determines an address to use in operation.
Auto IP procedures will now be described with reference to the drawings.
Firstly, FIG. 15 shows elements of a duplication detection packet used for detecting a duplication of IP address through Auto IP procedures. The terminal transmitting duplicate detection packets sets a special identifier indicating broadcast to all terminals for destination physical identifier 10, its own physical identifier for sender physical identifier 11, a value representing a duplication detection packet for packet type identifier 12 and an IP address forming the subject of duplication detection for duplication detection IP address 13.
FIG. 16 shows elements of a duplication notification packet used for notifying duplication of IP address used in Auto IP procedures. The terminal that detects duplication of IP address and sends a duplication notification packets sets the physical identifier of the terminal which transmitted duplication detection packet related to this duplication notification packet for destination physical identifier 20, sets its own physical identifier for sender physical identifier 21, sets a value representing a duplication notification packet in packet type identifier 22 and sets the detected duplicate IP address for duplication notification IP address 23.
FIG. 17 is a block diagram showing the functional elements related to IP address configuration of the terminal that resolves duplication of IP address through Auto IP procedures. At startup, the terminal randomly selects its own IP address through an IP address selection part 30, stores this IP address in an IP address storage part 31 and forwards the selected IP address to duplication detection packet assemble part 32. At duplication detection packet assemble part 32 a duplication detection packet as shown in FIG. 15 is assembled for detecting whether or not the IP address thus input is already in use on the network and the IP address forwarded from IP address selection part 30 is set for duplication detection IP address 13. Once the duplication detection packet is assembled at duplication detection packet assemble part 32, part 32 forwards that packet to a packet transmission part 33 while simultaneously timer 34 that waits for a duplication notification packet (duplication notification packet waiting timer 34) commences operation. Packet transmission part 33 transmits the packet thus passed from the duplication detection packet assemble part 32 to the network. As packet reception part 35 receives a packet with destination physical identifier specifying special identifier indicating broadcast or specifying its own physical identifier, part 35 forwards the packet thus received to reception packet analysis part 36.
FIG. 18 is a flowchart illustrating the procedure of reception packet analysis part 36. If reception packet analysis part 36 receives a packet from packet reception part 35, part 36 identifies the type of received packet from the packet type identifier (step S 41). If the received packet is a duplication detection packet part 36 performs processes for a duplication detection packet (step S 42) and if the packet is a duplication notification packet part 36 performs the processes for a duplication notification packet (step S 43) while if the packet is neither a duplication detection packet nor a duplication notification packet, part 36 forwards that packet to reception packet processing part 39 shown in FIG. 17 (step S 44) where part 39 performs the appropriate procedures depending on the type of packet.
FIG. 19 is a flowchart illustrating in detail the procedures for duplication detection packet processes of step S 42 in FIG. 18. If reception packet analysis part 36 receives a duplication detection packet, in Step S51, part 36 decides whether or not the duplication detection IP address 13 of the duplication detection packet received is equal to its own IP address held in IP address storage part 31 shown in FIG. 17. If these addresses are equal, part 36 passes that IP address and the sender's physical identifier 11 of the duplication detection packet received to duplication notification packet assemble part 37 shown in FIG. 17 (step S 52). Duplication notification packet assemble part 37 assembles a duplication notification packet shown in FIG. 16, sets the physical identifier passed from reception packet analysis part 36 for destination physical identifier 20 and the IP address for duplication notification IP address 23 and forwards that packet to packet transmission part 33.
FIG. 20 is a flowchart illustrating in detail the procedures for duplication notification packet processes of step S43 in FIG. 18.
If reception packet analysis part 36 receives a duplication notification packet, part 36 detects that the IP address selected by IP address selection part 30 shown in FIG. 17 is already used by other terminal, stops duplication notification packet waiting timer 34 shown in FIG. 17 if the timer is still operating (step S61, S62), then restarts IP address selection part 30 in FIG. 17 (Step S63).
If duplication notification packet waiting timer 34 as shown in FIG. 17 expires, normal communication commences using an IP address held in IP address storage part 31.
In the above description an IP address is used to identify terminals, however besides this, using host names for terminal identifiers is also conceivable. Even when using something other than an IP address as a terminal identifier, usage of the same method as above for resolving IP address duplication is conceivable for solving duplication and deciding a unique terminal identifier on a network.
In a wireless communication network, hidden terminal problem is known which may arise depending on the location of terminals. Hidden terminal problem will now be described with reference to FIG. 21. Of the terminals positioned in FIG. 21, terminal 70 is located in communication area 74 of terminal 71 and because terminal 71 is located in communication area 73 of terminal 70, terminal 70 and terminal 71 are able to communicate with each other. In the same way, terminal 70 and terminal 72 are capable of mutual communication. On the other hand, because terminal 71 is located outside the communication area of terminal 72 and vice versa, communication between terminal 71 and 72 is not possible. Accordingly, while terminal 70 is capable of communicating to both terminal 71 and terminal 72, communication is not possible between terminal 71 and terminal 72 and so terminal 71 and terminal 72 are said to be in relation of hidden terminal.
In the IP address duplication resolving methodology by Auto IP described above, a terminal broadcasts IP address duplication detection packets over the network. But when as in the case of a wireless network, the broadcast packets from a terminal can not reach those terminals in relation of hidden terminal with the sender, so there arises a problem that duplication of IP addresses cannot be detected even though IP addresses are in fact duplicated. For example, referring to FIG. 21, when terminal 70 and terminal 71 each communicate using different IP addresses, terminal 72 starts up and executes Auto IP procedures. Because an IP address duplication detection packet broadcast by terminal 72 does not reach to terminal 71 that is in a relation of hidden terminal with terminal 72, even though an IP address selected by terminal 72 is the same as that used by terminal 71, terminal 71 does not send a duplication notification packet to terminal 72, so terminal 72 cannot detect the IP address duplication and commences communication using the same IP address as terminal 71. In this situation terminal 70 cannot distinguish between terminal 71 and terminal 72 problems will occur where for example, packets targeted to terminal 71 are in fact sent to terminal 72.
Further, there may be a case that multiple terminals each outside the respective communication areas are using the same IP address, then come to be able to communicate with each other by some reason like moving into respective communication area. In this case IP address duplication will arise, but under the conventional methodology the problem cannot be resolved until one of the terminals having the duplicated IP address broadcasts a packet over the IP network by some necessity.
Again, there is a problem with the conventional methodology in that after an IP address to be used is once decided, even if duplication of that IP address is detected there is no way to resolve that duplication.
The above description posits the problems arising when using IP addresses as terminal identifiers, however the same problem exists where something like host names are used as terminal identifiers.